K8s:K8s 20个常用命令汇总
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
写在前面
- 博文内容为节译整理,用于温习
- 理解不足小伙伴帮忙指正
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
Kubernetes 是一个容器编排平台,允许用户部署、管理和扩展容器化应用程序。
由于其灵活性、可扩展性和易用性,它已成为管理容器的最流行的平台之一。
Kubernetes 的主要功能之一是其命令行界面 (CLI),它允许用户使用命令与平台进行交互。
使用 k8s cli 提高效率将使您对工作负载的操作及其调试速度更快。
在本文中,我们将讨论可以帮助用户更有效地管理其 Kubernetes 集群的前 20 个命令式命令。
kubectl create
kubectl create 命令用于在 Kubernetes 中创建资源。它可用于创建各种资源,包括 Pod、服务、部署等。例如,若要创建新部署,可以:
1 | kubectl create deployment my-deployment --image=my-image |
kubectl create deployment <deployment-name> --image=<image-name>
:创建一个 Deployment 对象,指定容器镜像名称和部署名称。
kubectl create service <service-name> --tcp=<port>:<target-port>
:创建一个 Service 对象,将容器的端口暴露到集群内部,并将其映射到指定的端口。
kubectl create configmap <configmap-name> --from-file=<path-to-file>
:创建一个 ConfigMap 对象,用于存储应用程序的配置信息。
kubectl create secret generic <secret-name> --from-literal=<key>=<value>
:创建一个 Secret 对象,用于存储敏感信息,如密码等。
kubectl create namespace <namespace-name>
:创建一个 Namespace 对象,用于隔离和管理 Kubernetes 资源。
kubectl create job <job-name> --image=<image-name>
:创建一个 Job 对象,用于在 Kubernetes 集群中运行一个或多个任务。
kubectl create cronjob <cronjob-name> --image=<image-name> --schedule=<cron-expression>
:创建一个 CronJob 对象,用于定期运行一个或多个任务。
kubectl get
它用于检索有关 Kubernetes 资源的信息。它可用于检索有关各种资源(包括 Pod、服务、部署等)的信息。
例如,要检索有关 Kubernetes 集群中所有 Pod 的信息,您可以:
1 | kubectl get pods/deployments/svc/configmaps/secrets |
kubectl describe
kubectl describe 命令用于检索有关特定 Kubernetes 资源的详细信息。它可用于检索有关各种资源(包括 Pod、服务、部署等)的信息。
例如,要检索有关特定容器的详细信息,可以:
1 | kubectl describe pod <pod-name> |
kubectl delete
kubectl delete 命令用于删除 Kubernetes 资源。它可用于删除各种资源,包括 Pod、服务、部署等。例如,要删除特定 Pod,可以:
1 | kubectl delete pod my-pod |
kubectl exec
kubectl exec 命令用于在正在运行的容器中执行命令。它可用于在各种容器中执行命令,包括 Pod、服务、部署等。
例如,要在正在运行的 Pod 中执行命令,可以:
1 | kubectl exec my-pod -- ls |
kubectl logs
kubectl logs 命令用于从容器中检索日志。它可用于从各种容器(包括 Pod、服务、部署等)中检索日志。
1 | kubectl logs my-pod |
kubectl port-forward
kubectl port-forward 命令用于将本地端口转发到 Kubernetes pod 上的端口。
它可用于转发来自各种 Pod 的端口,包括 Pod、服务、部署等。例如,要将本地计算机上的端口 8080 转发到 Pod 上的端口 80,您可以:
1 | kubectl port-forward my-pod 8080:80 |
kubectl label
kubectl label 命令用于在 Kubernetes 资源中添加或删除标签。它可用于在各种资源(包括容器、服务、部署等)中添加或删除标签。
例如,要向容器添加标签,可以:
1 | kubectl label pod my-pod app=backend |
kubectl scale
kubectl scale 命令用于扩展或缩减 Kubernetes 资源。它可用于缩放各种资源,包括部署、副本集等。例如,若要将部署扩展到 5 个副本,可以:
1 | kubectl scale deployment my-deployment --replicas=5 |
kubectl rollout
kubectl rollout 命令用于管理 Kubernetes 资源的推出。它可用于管理各种资源的推出,包括部署、副本集等。
1 | kubectl rollout status deployment/my-deployment |
kubectl expose
kubectl expose 命令用于将 Kubernetes 资源公开为服务。它可用于公开各种资源,包括 Pod、部署等。
例如,若要将部署公开为服务,可以:
1 | kubectl expose deployment my-deployment --port=80 --target-port=8080 |
kubectl run
kubectl run 命令用于创建新的 Kubernetes 资源。它可用于创建各种资源,包括 Pod、deployment等。
1 | kubectl run my-pod --image=my-image |
kubectl config
kubectl config 命令用于管理 Kubernetes 配置。它可用于管理各种配置,包括上下文、群集等。
例如,要查看当前上下文配置,可以:
1 | kubectl config current-context |
kubectl cluster-info
kubectl cluster-info
命令用于检索有关 Kubernetes 集群的信息。
它可用于检索各种信息,包括 API 服务器 URL、Kubernetes 版本等。
例如,要检索有关 Kubernetes 集群的信息,您可以:
1 | kubectl cluster-info |
kubectl apply -dry-run
kubectl apply --dry-run
命令用于模拟对 Kubernetes 资源更改的应用。它可用于模拟对各种资源(包括 Pod、服务、部署等)的更改。
1 | kubectl apply -f deployment.yaml — dry-run |
kubectl rollout undo
kubectl rollout undo 命令用于撤消 Kubernetes 资源的推出。它可用于撤消各种资源的推出,包括部署、副本集等。
1 | kubectl rollout undo deployment/my-deployment |
kubectl auth
kubectl auth 命令用于管理 Kubernetes 身份验证。它可用于管理各种身份验证设置,包括角色、角色绑定等。
1 | kubectl auth can-i get pods —-as my-user |
kubectl top
kubectl top 命令用于从 Kubernetes 资源中检索资源使用指标。它可用于从各种资源(包括节点、Pod 等)中检索指标。
1 | kubectl top pod my-pod |
kubectl set
此命令用于更新或修改 Kubernetes 资源的状态。这是一个命令式命令,这意味着它直接指示 Kubernetes 执行操作,而不是声明所需的状态。
kubectl set image
:此子命令用于更新部署或 Pod 使用的容器映像。kubectl set env
:此子命令用于更新 Pod 或部署的环境变量。kubectl set resources
:此子命令用于更新 Pod 或部署的资源请求和限制。kubectl set replicas
:此子命令用于更新部署的副本数。
1 | kubectl set image deployment/my-deployment my-container=new-image:latest |
博文部分内容参考
© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知
© 2018-至今 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)
1.K8s 集群高可用master节点ETCD全部挂掉如何恢复?
2.K8s 集群高可用master节点故障如何恢复?
3.K8s 镜像缓存管理 kube-fledged 认知
4.K8s集群故障(The connection to the server <host>:<port> was refused - did you specify the right host or port)解决
5.关于 Kubernetes中Admission Controllers(准入控制器) 认知的一些笔记
6.K8s Pod 创建埋点处理(Mutating Admission Webhook)
7.关于AI(深度学习)相关项目 K8s 部署的一些思考
8.K8s Pod 安全认知:从openshift SCC 到 PSP 弃用以及现在的 PSA